package com.yilin.tms.data.service;

import com.yilin.tms.core.application.PageData;
import com.yilin.tms.core.entity.data.etc.EtcOrder;
import com.yilin.tms.core.entity.order.transit.TransitOrder;
import com.yilin.tms.core.entity.user.account.Account;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface IEtcService {
    void saveEtcOrder(TransitOrder transitOrder, Account account);

    void updateEtcOrder(TransitOrder transitOrder);

    void autoWaybillStartOrEnd(Integer maxErrCount);

    void autoBillingUpdate();

    ArrayList<String> getNotQueryBillNo(Account account);

    void autoVehicleKeep();

    Map<String, Object> balanceQuery(Account user);

    Map<String, Object> resolutionEtcInvoice(EtcOrder etcOrder, String platId);

    Map<String, Object> companyQuery(Account user);

    PageData<EtcOrder> getEtcOrderPage(Account user, EtcOrder query, int start, Integer limit);

    Map<String, Object> handWaybillStartOrEnd(String etcOrderId);

    EtcOrder getEtcOrderById(String etcOrderId);

    EtcOrder getPartyEtcOrderByNum(String etcOrderNum);

    Map<String, Object> invoiceQuery(String confirmNo);

    Map<String, Object> vehicleKeepRecord(String platId, String plateNumber);

    Map<String, Object> vehicleKeep(String platId,String plateNumber);

    Map<String, Object> monthlyBillQuery(Account user, String taxCode, String tradeMonth, String pageNo);

    //获取车牌颜色编码
    String getPlateColor(String code);

    void saveHistoryEtcOrder(EtcOrder etcOrder, Account account);

    EtcOrder getEtcOrderByTransitNo(String transitNo);

    List<EtcOrder> getWaitEtcOrder(Integer maxErrCount);

    List<EtcOrder> getEtcOrderListByEtcStatusByBillTime(EtcOrder.EtcStatus etcStatus, int count);
}
